/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/
#include <Arduino.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#include "FastLED.h"     // 此示例程序需要使用FastLED库
#define NUM_LEDS 1       // LED灯珠数量
#define DZ1 23           // Arduino输出控制信号引脚 长点阵控制引脚
#define LED_TYPE WS2812B // LED灯带型号
#define COLOR_ORDER GRB  // RGB灯珠中红色、绿色、蓝色LED的排列顺序

uint8_t max_bright = 255; // LED亮度控制变量，可使用数值为 0 ～ 255， 数值越大则光带亮度越高
CRGB leds_DZ1[NUM_LEDS];  // 建立点阵leds
CHSV my_hsv_color(0, 255, 255);
// the setup function runs once when you press reset or power the board
void setup()
{
    // initialize digital pin LED_BUILTIN as an output.
    pinMode(LED_BUILTIN, OUTPUT);
    pinMode(15, OUTPUT);
    LEDS.addLeds<LED_TYPE, DZ1, COLOR_ORDER>(leds_DZ1, NUM_LEDS); // 初始化点阵
    FastLED.setBrightness(max_bright);                            // 设置灯带亮度
    Serial.begin(115200);
}
// the loop function runs over and over again forever
void loop()
{
    fill_solid(leds_DZ1, 1, my_hsv_color);
    my_hsv_color.h++;
    FastLED.show();
    digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
    digitalWrite(15, HIGH);
    delay(1000);                    // wait for a second
    digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
    digitalWrite(15, LOW);
    delay(1000); // wait for a second
}